/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVASE Song Huongkang PROJECT
 * All Rights Reserved.
 */

package 学习.中.包装类;


import org.junit.Test;

/**
 * @description 包装类(封装类)Wrapper
 *          为的是将基本数据类型包装成引用数据类型 有了 类 就可以调用方法 Java才完整的面向对象
 *          Number 下的子类 Byte Short Long Integer Float Double
 *                    对应 byte short long int     float double
 *            还有 Boolean boolean 、Character char
 *
 *           基本数据类型 包装类 String互相转换
 *
  *三元运算符会统一类型
 *
 *
 * @author 俊昭
 * @date 2022/3/29
*/

public class WrapperTest {
    //String类转换基本数据类型 parseXxx()方法
    @Test
    public void Test05(){
        String str1 ="123123";
        int num1 = Integer.parseInt(str1);
        System.out.println(num1);

        String str2 ="true";
        boolean bl1 = Boolean.parseBoolean(str2);// 'Boolean.parseBoolean(str2)' 的结果总是 'true'
        boolean bl2 = Boolean.parseBoolean("false1");// 'Boolean.parseBoolean("false1")' 的结果总是 'false'
        System.out.println(bl1);


    }
    //基本数据类型转为String类
    @Test
    public void Test04(){
        // 连接运算可以转换为字符串
        int num1 = 10;
        String str1 = num1 +"";
        System.out.println(str1);

        // String重载的valueOf()方法
        float f1 = 12.3f;
        String str2 = String.valueOf(f1);
        System.out.println(str2);

        Double d1 = new Double(12.4);
        String str3 =String.valueOf(d1);
        System.out.println(str3);
        //
    }
    //自动装箱自动拆箱
    @Test
    public void Test03(){
        int num1 = 10;
        method(num1);
        int num2 =132;
        Integer in1 = num2;// 自动装箱
        int num3 = in1;// 自动拆箱
        boolean b1 = true;
        Boolean b2 = b1;// 自动装箱
        boolean b3 =b2;// 自动拆箱


    }
    // 包装类转换为基本数据类型调用包装类的 xxxValue()
    @Test
    public void Test02(){
        Integer in1=new Integer(12);
        System.out.println(in1.intValue());

        Float fl1 =new Float(12.3f);
        float fl2 =fl1.floatValue();
        System.out.println(fl2);


    }
    //基本数据类型转包装类
    @Test
    public void Test01(){
        int num1 =10;
//        System.out.println(num1.toString());这样不行

        Integer in1=new Integer(10);
        System.out.println(in1.toString());
        Integer in2=new Integer("123");
        System.out.println(in2.toString());

//        Integer in3=new Integer("123ads");
//        System.out.println(in3.toString());

        Float fl1 =new Float(12.3f);
        System.out.println(fl1.toString());
        Float fl2 =new Float("12.23");
        System.out.println(fl2.toString());

        Boolean bl1 =new Boolean(true);
        Boolean bl2 =new Boolean("true");
        Boolean bl3 =new Boolean("true123");// false
        System.out.println(bl3.toString());

        Order or1 =new Order();
        System.out.println(or1.isMale);
        System.out.println(or1.IsFemale);// null 引用数据类型没有赋值的时候是null


    }
    public void method(Object object){

    }
}
class Order{
    boolean isMale;
    Boolean IsFemale;
}